<?php
namespace app\model;

use think\Model;

class Attribute extends Model
{
    protected $connection = 'mysql';

    protected $pk = 'id';

    protected $name = 'attribute';

    public function add_attribute($data) {
        global $_W;
        $attribute['weid'] = weid();
        $attribute['name'] = $data['Attribute']['name'];
        $attribute['update_time'] = time();
        $attribute['value'] = '';
        foreach ($data['attribute_value'] as $k => $v) {
            if (!empty($v)) {
                if ($v != end($data['attribute_value'])) {
                    $attribute['value'] .= $v['name'] . ',';
                } else {
                    $attribute['value'] .= $v['name'];
                }
            }
        }

        $this->setAttributes($attribute);
        $this->insert();
        $attribute_id = $this->attributes['attribute_id'];

        if ($attribute_id) {

            foreach ($data['attribute_value'] as $k => $v) {
                if (!empty($v)) {

                    $value['attribute_id'] = $attribute_id;
                    $value['value_name'] = $v['name'];
                    $value['name'] = $attribute['name'];
                    $value['value_sort'] = $v['sort'];
                    
                    Yii::$app->db->createCommand()->insert(AttributeValue::tableName(), array(
                        'attribute_id' => $attribute_id,
                        'name' => $attribute['name'],
                        'value_name' => $v['name'],                       
                        'sort' => $v['sort']
                    ))->execute();
                }
            }

            return true;
        } else {
            return false;
        }
    }

    public function edit_attribute($data) {

        $attribute['name'] = $data['Attribute']['name'];
        $attribute['update_time'] = time();
        $attribute['value'] = '';

        foreach ($data['attribute_value'] as $k => $v) {
            if (!empty($v)) {
                if ($v != end($data['attribute_value'])) {
                    $attribute['value'] .= $v['name'] . ',';
                } else {
                    $attribute['value'] .= $v['name'];
                }
            }
        }

        $r = self::updateAll($attribute, ['id' => $data['id']]);

        if ($r) {
            
            if (!empty($data['id'])) {
                AttributeValue::deleteAll(['attribute_id'=>$data['id']]);      
            }

            foreach ($data['attribute_value'] as $k => $v) {
                if (!empty($v)) {
                    
                    Yii::$app->db->createCommand()->insert(AttributeValue::tableName(), array(
                        'attribute_id' => $data['id'],
                        'name' => $attribute['name'],
                        'value_name' => $v['name'],                       
                        'sort' => $v['sort']
                    ))->execute();
                }
            }

            return true;
        } else {
            return false;
        }
    }

}
